import axios from "axios";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
import { Message } from "element-ui";
import { userTempId, readToken } from "@/utils/auth";
// 创建实例对象
const instance = axios.create({
  // 默认路由
  baseURL: "/sph",
  // 超时时间
  timeout: 5000,
});

// 请求拦截
instance.interceptors.request.use((config) => {
  // 向 请求头添加 userTempId  用户的唯一临时标识符
  config.headers.userTempId = userTempId();
  // console.log(config.headers.userTempId);

  // 向请求头添加token 用户真正的唯一标识
  if (readToken()) {
    config.headers.token = readToken();
  }
  // 开启进度条
  NProgress.start();
  // 返回请求的所有的配置信息
  return config;
});

// 响应拦截
instance.interceptors.response.use(
  (response) => {
    // 关闭进度条
    NProgress.done();
    // console.log(response.data);
    // 判断状态码
    switch (response.data.code) {
      case 200:
        return response.data.data;
      case 201:
        Message.warning(response.data.message);
        return;
      // 没有返回token
      case 208:
        // 提示信息
        Message.warning('请先登录！')
        // 必须返回 失败状态的Promise
        return Promise.reject()
      case 205:
        // 支付中
        return response.data

    }
  },
  (reject) => {
    console.log(reject.message);
    // 解决方法
    // 返回一个 失败状态的promise
    // return Promise.reject(()=>{})
    return new Promise(() => {});
  }
);
export default instance;
